Wenn Sie Postgres 9.5 oder neuer verwenden (was ich vermute, da es bereits im Januar 2016 veröffentlicht wurde), gibt es einen sehr nützlichen ON CONFLICT
Klausel, die Sie verwenden können:
INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING