No mencionó su versión de PostgreSQL, que es muy importante al escribir respuestas a preguntas como esta.
Si está ejecutando PostgreSQL 9.0 o posterior (o puede actualizarlo), puede usar este enfoque como lo documenta Pavel:
http://okbob.blogspot.com /2009/10/acceso-dinamico-a-campos-de-registro-en.html
En general, lo que desea es hacer referencia a un campo con nombre dinámico en una variable PL/PgSQL de tipo registro como 'NUEVO' o 'ANTIGUO'. Históricamente, esto ha sido molestamente difícil y sigue siendo incómodo, pero al menos es posible en 9.0.
Su otra alternativa, que puede ser más simple, es escribir sus disparadores de auditoría en plperlu, donde las referencias de campo dinámicas son triviales.