You would have to be careful not to initialize any RMI objects in local mode.
(As one more thought experiment, we could toss out CD and export CS. Then CS would actually be a remote object.)
The program must be able to work in a non-networked mode. In this mode, the database and GUI must run in the same VM and must perform no networking, must not use loopback networking, and must not involve the serialization of any objects when communicating between the GUI and database elements.
Does the interface ContractorAccess implement Remote?
But take a look at what information is updated when user books a record - it only needs to set the customer id only, so why commit the change to all the other unaffected values?