you seem to have a bigger problem.
Rigth now, when I reserve room 1 for 1 week, somewhere next year, that room will be 'reserved' starting now.
So next month, it wont show in the reservation table (even though the room would be free)
You should not have a field 'reserved' on the room table, as it will not tell you WHEN this room is reserved.
Your isNotReserved scope should get 2 more parameters: start / end, and should return rooms that are not reserved within that date range (checking the reservations & reservation_room table).
You could than add an optional third parameter ($ignoreId) which would be returned even if it had a reservation within that time frame (so you can add the current room's ID to that scope to make sure the edit screen can have the current room selected).