Resolví el problema y vuelvo a publicar la solución en caso de que alguien tenga ese problema.
Si no coloco comandos DDL en el script, la reversión se realiza correctamente.
Así que el guión:
set autocommit off
whenever SQLERROR EXIT ROLLBACK
insert into a values (1);
insert into a values (2);
insert into a values ('x');
commit;
obras.
Y si se usa DDL, en general, Oracle no proporciona la funcionalidad de reversión.