Postgres 9.5 (rilasciato dal 07-01-2016) offre un comando "upsert", noto anche come clausola ON CONFLICT per INSERT:
INSERT ... ON CONFLICT DO NOTHING/UPDATE
Risolve molti dei sottili problemi che si possono incontrare quando si utilizza l'operazione simultanea, che propongono alcune altre risposte.