Mr. Rao,
ese es un ejemplo provocado por error en la programación, el tema es que el comando :insert() devuelve Nil y sigue con la ejecución de sentencias, un verdadero desastre, el método debería (a mi entender y coincido con Carlos) generar el error que provoque la salida por el CATCH.
Saludos.