In odoo 16.0 community version i found a potential bug in the backend. in models.py where the unlink()-method of the model class is defined, it calls self.env.flush_all() which leads to recomputing all fields and their constrains.
the problem with that is, that if you have a write call where there is a deletion and a creation of a new record of a one2many field and you have a computed field based on that one2many and a constraint on lets say a sum of all one2many entries, that constraint fires right after the deletion of the original write call even though there is also a creation in the same call which would contain the correct value to pass the constraint.
what to do to help fixing this?