Dalla documentazione di Oracle JDBC:
Quando viene creata una connessione, è in modalità di commit automatico. Ciò significa che ogni singola istruzione SQL viene trattata come una transazione e viene automaticamente salvata subito dopo l'esecuzione. (Per essere più precisi, l'impostazione predefinita prevede che un'istruzione SQL venga salvata quando viene completata, non quando viene eseguita. Un'istruzione viene completata quando tutti i suoi set di risultati e il conteggio degli aggiornamenti sono stati recuperati . In quasi tutti i casi, tuttavia, un'istruzione viene completata, e quindi confermata, subito dopo essere stata eseguita.)
L'altra cosa è - hai omesso i dettagli di creazione della connessione, quindi sto solo indovinando - se stai usando alcuni framework o acquisendo una connessione da un'origine dati o da un pool di connessioni, autocommit
potrebbe essere off
da quei framework/pool/datasources - la soluzione è non fidarsi mai delle impostazioni predefinite;-)