nextval()
автоматически продвигает последовательность перед возвратом полученного значения. Вам не нужно ничего лишнего. Просто используйте функцию в вашем запросе напрямую:
update t_contract c
set end_date = ce.correct_end_date
, status = 'Active'
, orig_end_date = ce.correct_end_date
from ops.t_mon_ConnectEasy ce
where c.contract_id = ce.contract_id
and iteration_id = nextval('ops.mon_connecteasy_seq');
Имейте в виду, что одновременные транзакции также могут продвигать последовательность, создавая виртуальные пропуски в последовательных номерах.
И у меня есть ноющее подозрение, что это может быть не лучшим способом для достижения ваших нераскрытых целей.