https://www.postgresql.org/docs/9.6/runtime-config-locks.html
"The default, 64, has historically proven sufficient, but you might need to raise this value if you have queries that touch many different tables in a single transaction, e.g., query of a parent table with many children."
How "raised" is too raised? I just had to increase max_locks_per_transaction from 640 to 1024 on an instance with many child tables and against which is run many large reports. Another instance has zero children, but had to increase the value to 1280 to prevent reports from failing.
--
Angular momentum makes the world go 'round.
Angular momentum makes the world go 'round.