Da documentação do Oracle JDBC:
Quando uma conexão é criada, ela está no modo de confirmação automática. Isso significa que cada instrução SQL individual é tratada como uma transação e é confirmada automaticamente logo após ser executada. (Para ser mais preciso, o padrão é que uma instrução SQL seja confirmada quando for concluída, não quando for executada. Uma instrução é concluída quando todos os seus conjuntos de resultados e contagens de atualização são recuperados . Em quase todos os casos, no entanto, uma instrução é concluída e, portanto, confirmada, logo após ser executada.)
A outra coisa é - você omitiu os detalhes da criação da conexão, então estou apenas supondo - se você estiver usando alguns frameworks ou adquirindo uma conexão de uma fonte de dados ou pool de conexões, o
autocommit
pode ser desativado off
por esses frameworks/pools/datasources - a solução é nunca confiar nas configurações padrão;-)