Bueno, estás SP, simplemente tienes que obtener el valor devuelto por la función ROW_COUNT(), ejecutándola inmediatamente luego del INSERT.
Cita: ROW_COUNT() retorna el número de registros actualizados, insertados o borrados por el comando precedente. Esto es lo mismo que el número de registros que muestra el cliente mysql y el valor de la función de la API C mysql_affected_rows() .
En el caso de estar insertando un registro nuevo en una tabla que posea un campo numerico autoincremental, también puedes usar LAST_INSERT_ID(), donde cualquier valor superior a cero (0) implicará que se insertó exitosamente.
Cita: Retorna el último valor generado automáticamente que se insertó en una columna AUTO_INCREMENT.
El último ID generado se mantiene en el servidor para cada conexión. Esto significa que el valor de la función retorna a cada cliente el valor AUTO_INCREMENT más reciente generado por ese cliente. Este valor no puede ser afectado por otros clientes, incluso si generan valores AUTO_INCREMENT ellos mismos. Este comportamiento asegura que reciba sus propios IDs sin tener en cuenta la actividad de otros clientes y sin la necesidad de bloqueos o transacciones.
El valor de LAST_INSERT_ID() no cambia si actualiza la columna AUTO_INCREMENT de un registro con un valor no mágico (esto es, un valor que no es NULL ni 0).
Si inserta varios registros a la vez con un comando de inserción LAST_INSERT_ID() retorna el valor del primer registro insertado. La razón para esto es hacer posible reproducir fácilmente el mismo comando INSERT contra otro servidor.
Si usa INSERT IGNORE y el registro se ignora, el contador AUTO_INCREMENT no se incrementa y LAST_INSERT_ID() retorna 0, lo que refleja que no se ha insertado ningún registro. (Antes de MySQL 4.1, AUTO_INCREMENT el contador se incrementa y LAST_INSERT_ID() retorna el nuevo valor.)
Ventajas de leer el manual de referencia...
MySQL 5.0 Reference Manual