C'est ainsi qu'Oracle fonctionne. Votre premier INSERT a été fait correctement (c'est-à-dire inséré "1" dans un tableau).
Ensuite, vous avez exécuté un bloc PL/SQL anonyme qui insère "3", puis "2", et échoue lorsque vous essayez d'insérer "1" en raison d'une violation de clé primaire.
Si une exception non gérée se produit pendant l'exécution de ce bloc PL/SQL (c'est ce que vous dites que "le gestionnaire d'exceptions d'Oracle revient ici"), Oracle revient au début du bloc PL/SQL.
Lorsque vous utilisez le gestionnaire d'EXCEPTION et que vous émettez ROLLBACK, c'est VOUS qui décidez quoi faire si quelque chose se produit, et c'est d'annuler toutes les modifications apportées au précédent COMMIT qui était implicitement un COMMIT après l'exécution de l'instruction CREATE TABLE, donc après INSERT "1 " est également annulé.