Вы можете использовать точку сохранения после выбора composite_nextval
.Затем просто вернитесь к этой точке сохранения и передайте остальное.
Примерно так:
BEGIN;
SELECT composite_nextval(...);
SAVEPOINT my_savepoint;
INSERT INTO some_table(a) VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
COMMIT;
Таким образом, select composite_nextval(...)
будет зафиксирован, но insert into some_table
не будет.