That is NOT safe. The problem is it allows rsync to use mtime alone to decide that a file is in sync, and that will fail if Postgres writes to a file in the same second that the first rsync reads from it (assuming Postgres writes after rsync reads). You need to add the --checksum flag to rsync (which means it will still have to read everything that's in /var/lib/pgsql).
The checksum flag as you mention is not performant,
Definitely not. :/
If this is a concern, you're much better using the *--modify-window *flag: When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 (for an exact match), but you may find it useful to set this to a larger value in some situations.
Hence, rsync -va --modify-window=1 would remove your concern about a same second race condition without forcing the sync to read through all the files.
Very interesting and useful!
Cool! I'll use the rsync -va --modify-window=1 instead.