That's definitely not a common case. Suggestions:
1. Disable/enable button on the client using JS - jQuery to check whether elements with a special CSS classes (e.g. my-app-reservable) were output to the client or not.
2. Extend org.richfaces.model.ExtendedTableDataModifiableModel and enable/disable button according to whether reservable rows were encountered in walk() method (hint: walk() method provides row keys, use getRowData()/setRowKey() to obtain row value).
3. Create converter that will set request-scoped variable controlling the button if reservable row was passed for conversion - this will require you to provide output component for row data and is kind of hack.