Ambas suposiciones son incorrectas:
PostgreSQL almacena una timestamp with time zone
como entero de 8 bytes que contiene el desplazamiento desde 2000-01-01 00:00:00 UTC
en microsegundos.
Por lo que no almacena ni la zona horaria, ni la precisión es de 1 minuto.
Tras la conversión a una cadena, la marca de tiempo se formatea de acuerdo con la configuración actual de la timezone
parámetro.
Entonces, si tiene que almacenar la zona horaria por separado, si necesita recordarla y usar AT TIME ZONE
expresión para convertir la marca de tiempo a la zona horaria adecuada.
Pides referencias de documentación. Parte de eso es aquí :
/*
* Timestamp represents absolute time.
[...]
* Timestamps, as well as the h/m/s fields of intervals, are stored as
* int64 values with units of microseconds. (Once upon a time they were
* double values with units of seconds.)
En el mismo archivo, encuentra
/* Julian-date equivalents of Day 0 in Unix and Postgres reckoning */
#define UNIX_EPOCH_JDATE 2440588 /* == date2j(1970, 1, 1) */
#define POSTGRES_EPOCH_JDATE 2451545 /* == date2j(2000, 1, 1) */