I have face so many times serialize access error. And I have also seen that it is due to query like SELECT .... FOR SHARE. we can also see into log.
TransactionRollbackError: could not serialize access due to concurrent update CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."res_users" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x"
Why Odoo / OpenERP use SELECT .... FOR SHARE query to retrieve data ?