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