Lets wrap all the events that a user can configure in options around some kind of exception handling to prevent changes happening visually that did not actually work.
For example
when _rowAccept is called, let's say a user calls an API. An error occurs and an exception is thrown so the data is reset back to the original values. This prevents confusion.
(In fact, we should encourage users to throw an exception for this reason)