I use onBeforeInsert in my table_edit.php to generate a value which should be added to the database (will come from another subsystem so it's not available during the form input).
currently i do the following but thing there is a better solution .
$app->tform->errorMessage = myfunction($_POST) ;
$this->dataRecord['value'] = $_SESSION['value'] ;
unset ($_SESSION['value']) ;
global $_SESSION ;
$_SESSION['value'] = "foo";
return "error foo :-(" ;