At least on SQLAnywhere it seems to be implemented using triggers, ie not unlike what one would do if rolling your own.