Creo SQL%NOTFOUND
devuelve true
cuando no se encuentran registros. Tu IF
se evaluaría como verdadero en ese caso y, por lo tanto, escribiría su put_line en la terminal. La instrucción SQL se ejecutó con éxito. Si ejecuta esa instrucción SQL por sí misma desde la línea de comando, recibirá 0 filas actualizadas/eliminadas, no un error de Oracle.
Si desea que se lance una excepción, puede usar RAISE
dentro de tu IF
y apúntelo a la excepción en el bloque de excepción que desea lanzar.