Po prostu zaktualizuj wyzwalacz, aby uruchamiał się tylko wtedy, gdy nie otrzymasz identyfikatora.
create or replace
trigger sa.my_trigger
before insert on sa.my_table
for each row
when (new.id is null)
begin
select sa.my_sequence.nextval
into :new.id
from dual;
end;