Well, that can be accomplished one of two ways (or even more, but automagically this way):
1) CHECK constraints (what you call ASSERTIONs)
2) Triggers
Check constraints are run upon data modification and are typically included in the CREATE TABLE statement. For a more in-depth look, please visit:
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/20776;pt=20776?DwebQuery=check#X
Constraints cannot contain subqueries and the like, so your example may require a trigger.
Triggers are essentially bits of T-SQL code that is automatically run when you change data in tables (update, delete, insert). A check constraint is basically a trigger which you do not explicitly create and is run every time a column is modified (e.g. for a trigger you can specify action on DELETE only, and not insert; check constraints are run every time a column is modified). Triggers are generally used for more complex constraints.
ASE does not support 'before' triggers so essentially after you insert a row, then you'd run your check, and you'd have to 'roll back' the transaction which was just created (the insert statement).
To read more about triggers, please visit (I can't link to it directly for some reason):
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView
Click on "Transact SQL Users Guide" in the left pane, then click "Chapter 16 Triggers: Enforcing Referential Integrity". It speaks specifically of foreign key integrity but you can easily adapt to your type of assertion.