docs: def _finalize_nonblock_blob(self, sd, metadata, digest):
          # type: (SyncCopy, blobxfer.models.synccopy.Descriptor, dict,
          #        str) -> None
          """Finalize Non-Block blob
          :param SyncCopy self: this
          :param blobxfer.models.synccopy.Descriptor sd: synccopy descriptor
          :param dict metadata: metadata dict
          :param str digest: md5 digest
          """
          # set md5 page blob property if required
          if (blobxfer.util.is_not_empty(digest) or
                  sd.dst_entity.cache_control is not None):
              self._set_blob_properties(sd, digest)
          # set metadata if needed
          if blobxfer.util.is_not_empty(metadata):
              self._set_blob_metadata(sd, metadata)