using cell edit, restoreCellonFail is set to false, have validationCell and errorCell defined to show custom error message.
In either case, when there is validation error, cell remains in edit mode, which is correct, but if the user presses tab, it goes to next cell and sets it in edit mode. If you keep pressing tab, any next cell goes in edit mode and you can get out of it even pressing ESC key. Only way is reload to page and start over.
Is there a way to when validation error happens and user presses tab, it remains in the current cell
You can define a global varible and when validation error occur set this gloab variable to true in validationCell and do not allow movement usin isEditableCell. Also afterRestoreCell should reset this variable. Do not forget to focus the field in validation call. Below simple test code which works at our end.