Si vous utilisez Postgres 9.5 ou plus récent (ce que je suppose que vous êtes, puisqu'il a été publié en janvier 2016), il y a un ON CONFLICT
très utile vous pouvez utiliser :
INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING