Cuando no se indica un commit o rollback en un proceso, las transacciones se hacen en forma implícita, y el comportamiento que tengan dependerá de la definición de atomicidad de transacciones que implemente cada base de datos, por ejemplo:
Si tengo una tabla T1 con un campo ID Numerico y ejecuto el procedimiento
Código:
create procedure p1
as
begin
insert into t1 values (1)
insert into t1 values ('a') --Error por alfanumérico en un campo numérico
end
En Oracle, después de la ejecución no verás datos en la tabla porque define que una transacción implícita es a nivel de proceso, en cambio, en SQL Server verás un registro insertado con valor 1 porque define que una transacción implícita es a nivel de sentencia SQL. En conclusión, es recomendado controlar el comportamiento de la transacción con un commit y rollback explícito, pero si no los utilizas, asegúrate de conocer cómo implementa la atomicidad el motor de base de datos con el que estás trabajando.
Saldudos