Fix for Issue #966 (in progress)

I am working on a fix for Issue #966 and would gladly welcome any feedback that anyone may have. I have created a new function called _revert_table() within add_row(); the purpose of this function is to revert the table back to its previous state in case of an error. Currently, the only two errors I have been able to trigger are ValueError('Mismatch between number of values and columns') and ValueError('Mismatch between number of masks and columns'). The former error is what causes this particular issue, but it would be nice to know if there are any other cases that also need to be handled.