Takto funguje Oracle. Váš první INSERT byl proveden správně (tj. vložen „1“ do tabulky).
Potom jste spustili anonymní blok PL/SQL, který vloží „3“, poté „2“ a při pokusu o vložení „1“ selže kvůli porušení primárního klíče.
Pokud během provádění daného PL/SQL bloku dojde k neošetřené výjimce (což říkáte, že "Oracle se vrací zpět sem"), Oracle se vrátí zpět na začátek bloku PL/SQL.
Když použijete obslužný program EXCEPTION a vydáte ROLLBACK, pak jste to VY, kdo rozhoduje o tom, co dělat, pokud se něco stane, a to je vrátit všechny změny do předchozího COMMIT, což byl implicitně provedený COMMIT po provedení příkazu CREATE TABLE, takže po INSERT "1 " je také vráceno zpět.