(if i read your message correctly)
Concerning validation errors, they are shown to the user in the client, but to do not cancel a commit, which is a bit fusy. Currently the only way to check if an commit failed is to check isNew(theobject) after the commit, (which will work only if the object dit not exist before). In general, i suggest throwing an exception by using a java action. This does trigger a rollback as expected. You can catch this error using custom error handling on the change activity.