'Update metadata on device.
@param booklists: A tuple containing the result of calls to
(L{books}(oncard=None), L{books}(oncard=\'carda\'),
L{books}(oncard=\'cardb\')).'

def sync_booklists(self, booklists, end_session=True):

    if self.verbose:
        logger().info(('%s.sync_booklists()' % self.__class__.__name__))
    if self.update_needed:
        if self.verbose:
            logger().info('    calling    _update_device')
        self._update_device(msg=self.update_msg, wait=False)
        self.update_needed = False
    if self.problem_titles:
        raise UserFeedback(self.problem_msg, details='\n'.join(self.problem_titles), level=UserFeedback.WARN)
    self.problem_titles = []
    self.problem_msg = None
    self.update_list = []
