When a client runs an AppServer procedure that implements a normal ABL transaction, the client can know the status of the transaction at the point the transaction succeeds or fails. You can communicate this status on the AppServer to the client by passing back a return value (RETURNstring or RETURN ERRORstring) or output parameter value from the remote procedure that encapsulates the transaction.
Thus, your AppServer procedure completely hides the actual mechanics of a normal ABL transaction from the client. For example, your return value might indicate whether or not a customer record was successfully updated. Managing the several reasons why the customer record might not be updated is the responsibility of your AppServer procedure implementation. Most importantly, once the remote procedure that implements the transaction returns to the client, all record locks are released and all records are available for access by other database clients.