Om du använder Postgres 9.5 eller senare (vilket jag antar att du gör, eftersom det släpptes i januari 2016), finns det en mycket användbar ON CONFLICT
du kan använda:
INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING