Podes obtener el valor del generador sin alterarlo llamando a gen_id con un cero (0) como segundo parámetro.
Claro, es algo que no recomiendo, puesto que te puede dar problemas de concurrencia.
Para evitar llamar al generador "por gusto", podrías intentar hacerlo justo en el momento anterior a que el registro se inserte realmente en la base de datos, pero como las cosas aún asi pueden fallar, realmente tu aplicación no debiera depender de que no hayan saltos en las llaves primarias.
Hasta luego.