Yo te recomendaría el uso de arrays
http://www.postgresql.org/docs/9.0/i...ve/arrays.html
La idea sería que desde tu aplicación, armaras el array y se lo enviaras como parametro de entrada a la función. Una vez se tenga el array lleno, puede ser recorrido con ciclos for (tal como te comenté) e insertarse en las tablas tantos detalles tenga el array.
Pegale una lectura al enlace, haz unas pruebas, mira como funciona este tema y empieza tu desarrollo.
Si te surgen preguntas de la lectura o de los ejemplos vuelves y posteas.
saludos