Se você estiver usando o Postgres 9.5 ou mais recente (que suponho que esteja, já que foi lançado em janeiro de 2016), há um
ON CONFLICT
muito útil cluase você pode usar:INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING