может кому-то поможет такой хитрый ход потому как я именно такого решения не нашел.
положим нужно заинсертить в таблицу уникальных ключей заранее известный ключ, но мы не знаем есть он или нет и соответственно хотим исключить ошибку и ситуацию гонки. положим ключ равен 777.
CREATE TABLE x(id BIGINT, PRIMARY KEY(id));
BEGIN;
SELECT pg_advisory_xact_lock(777);
INSERT INTO x (id) SELECT 777 WHERE NOT EXISTS (SELECT id FROM x WHERE id=777) RETURNING id;
COMMIT;
pg_advisory_xact_lock исключает ситуацию гонки залочиваясь и ожидая commit/rollback параллельной транзации или обрыва паралелльного соединения с базой.
insert добавляет запись только если ее еще нет, и по возвращенному им значению понятно было это добавление или нет