Acredito que
SQL%NOTFOUND
retorna true
quando nenhum registro for encontrado. Seu IF
seria avaliado como verdadeiro nesse caso e, portanto, escreveria sua put_line no terminal. A instrução SQL foi executada com sucesso. Se você executar essa instrução SQL sozinha na linha de comando, receberá 0 linhas atualizadas/excluídas, não um erro do Oracle. Se você quiser que uma exceção seja lançada, você pode usar
RAISE
dentro do seu IF
e aponte para a exceção no bloco de exceção que você deseja lançar.