Also reviewing if we really need SERIALIZED and could instead use READ COMMITTED. Would that be likely to mitigate against this happening?
PostgreSQL can NOT go below READ COMMITTED in transaction isolation levels. Read Committed is the default mode for all transactions in PostgreSQL https://www.postgresql.org/docs/17/transaction-iso.html Unless there is a very specific need for serializing transactions such as financial calculations or updating and calculating the remaining number of tickets to sell for a concert, Serialization adds a lot of overhead for not much gain.. thanks