docs: async def lock(self, device):
          """
          Lock device if unlocked.
  
          :param device: device object, block device path or mount path
          :returns: whether the device is locked
          """
          device = self._find_device(device)
          if not self.is_handleable(device) or not device.is_crypto:
              self._log.warn(_('not locking {0}: unhandled device', device))
              return False
          if not device.is_unlocked:
              self._log.info(_('not locking {0}: not unlocked', device))
              return True
          self._log.debug(_('locking {0}', device))
          await device.lock()
          self._log.info(_('locked {0}', device))
          return True