Il problema della concorrenza non dovrebbe essere risolto da te, ma automaticamente dal DBMS: è questo che si occupa di garantire la correttezza dei dati, l'accesso concorrente e tutto il resto.
Io non conosco Postgres, ma se prevede l'utilizzo delle transazioni, allora non ti resta che utilizzarle.


Ciao.