Ето как работи Oracle. Вашето първо INSERT беше направено правилно (т.е. вмъкна "1" в таблица).
След това изпълнихте анонимен PL/SQL блок, който вмъква „3“, след това „2“ и се проваля при опит за вмъкване на „1“ поради нарушение на първичния ключ.
Ако възникне необработено изключение по време на изпълнението на този PL/SQL блок (което е това, което казвате, че „Манипулаторът за обработка на изключения на Oracle се връща назад тук“), Oracle се връща обратно към началото на PL/SQL блока.
Когато използвате манипулатора на EXCEPTION и издадете ROLLBACK, тогава ВИЕ решавате какво да направите, ако нещо се случи, и това е да върнете всички промени към предишния COMMIT, който беше имплицитно извършен COMMIT след изпълнение на оператора CREATE TABLE, така че следвайки INSERT "1 " също се връща назад.