def METHOD_NAME(self, spans: Sequence[Span]) -> SpanExportResult:
    # After the call to Shutdown subsequent calls to Export are
    # not allowed and should return a Failure result
    if self._closed:
        logger.warning("Exporter already shutdown, ignoring batch")
        return SpanExportResult.FAILURE
    # Populate service_name from first span
    # We restrict any SpanProcessor to be only associated with a single
    # TracerProvider, so it is safe to assume that all Spans in a single
    # batch all originate from one TracerProvider (and in turn have all
    # the same service.name)
    if spans:
        service_name = spans[0].resource.attributes.get(SERVICE_NAME)
        if service_name:
            self.local_node.service_name = service_name
    result = self.session.post(
        url=self.endpoint,
        data=self.encoder.serialize(spans, self.local_node),
        timeout=self.timeout,
    )
    if result.status_code not in REQUESTS_SUCCESS_STATUS_CODES:
        logger.error(
            "Traces cannot be uploaded; status code: %s, message %s",
            result.status_code,
            result.text,
        )
        return SpanExportResult.FAILURE
    return SpanExportResult.SUCCESS