docs: async def execute(self, dc=None, token=None):
          """Execute stored operations
  
          Parameters:
              dc (str): Specify datacenter that will be used.
                        Defaults to the agent's local datacenter.
              token (ObjectID): Token ID
          Returns:
              Collection: Results of operations.
          Raises:
              TransactionError: Transaction failed
          """
          token_id = extract_attr(token, keys=["ID"])
          try:
              response = await self._api.put(
                  "/v1/txn",
                  data=self.operations,
                  params={
                      "dc": dc,
                      "token": token_id
                  })
          except ConflictError as error:
              errors = {elt["OpIndex"]: elt for elt in error.value["Errors"]}
              operations = [op["KV"] for op in self.operations]
              meta = error.meta
              raise TransactionError(errors, operations, meta) from error
          except Exception as error:
              raise error
          else:
              self.operations[:] = []
  
          results = []
          for _ in response.body["Results"]:
              data = _["KV"]
              if data["Value"] is not None:
                  data["Value"] = decode_value(data["Value"], data["Flags"])
              results.append(data)
          return results