code: async def update_lease_async(self, lease):
          
          if lease is None:
              return False
  
          if not lease.token:
              return False
  
          _logger.debug("Updating lease %r %r", self.host.guid, lease.partition_id)
  
          # First, renew the lease to make sure the update will go through.
          if await self.renew_lease_async(lease):
              try:
                  await self.host.loop.run_in_executor(
                      self.executor,
                      functools.partial(
                          self.storage_client.create_blob_from_text,
                          self.lease_container_name,
                          lease.partition_id,
                          json.dumps(lease.serializable()),
                          lease_id=lease.token))
  
              except Exception as err:  # pylint: disable=broad-except
                  _logger.error("Failed to update lease %r %r %r",
                                self.host.guid, lease.partition_id, err)
                  raise err
          else:
              return False
          return True
docs: Update the store with the information in the provided lease. It is necessary to currently
          hold a lease in order to update it. If the lease has been stolen, or expired, or released,
          it cannot be updated. Updating should renew the lease before performing the update to
          avoid lease expiration during the process.
  
          :param lease: The stored lease to be updated.
          :type lease: ~azure.eventprocessorhost.lease.Lease
          :return: `True` if the updated was performed successfully, `False` if not.
          :rtype: bool