I am using custom tables with revisions.
I am trying to detect when a status has changed, either as the result of modifying a field, or by adding a new record to the table.
When I update an existing record, I see that both mbct_before_update and mbct_before_add are fired. The reason mbct_before_add fires is because of the new revision that is being written.
This behavior is not desired, because I cannot distinguish between adding a record and modifying an existing one.
If you want to keep this hook, you should add a parameter to it that we can use to differentiate between a true add and a revision. But, I'd argue that this is incorrect behavior and should be fixed.