В идеале вы бы запросили разрешение на создание необходимых последовательностей.
Если это не вариант по какой-то бюрократической причине, вам, возможно, удастся обойти проблемы параллелизма, используя консультативные блокировки. Псевдо-код:
loop
select id as last_id, pg_try_advisory_lock('yourtable'::regclass, id) as locked
from yourtable
order by id desc limit 1
if not locked then sleep .01 else exit end if
end loop
new_id = last_id + 1
insert...
select pg_advisory_unlock('yourtable'::regclass, last_id)