code: def visit_delete_attribute(self, op: DeleteAttribute) -> None:
      if self._type:
          if self._delete_ops:
              # Keep existing delete operation and simply clear all modification operations after it
              self._modify_ops = []
              self._config_ops = []
              self._type = None
          else:
              # This case is tricky. There was no delete operation, but some modifications was performed.
              # We do not know if this attribute exists on server side and we do not want a delete op to fail.
              # So we need to send a single modification before delete to be sure a delete op is valid.
              self._delete_ops = [self._modify_ops[0], op]
              self._modify_ops = []
              self._config_ops = []
              self._type = None
      else:
          if self._delete_ops:
              # Do nothing if there already is a delete operation
              # and no other operations was performed after it
              return
          else:
              # If value has not been set locally yet and no delete operation was performed,
              # simply perform single delete operation.
              self._delete_ops.append(op)
  
imports: import dataclasses
  import typing
  from enum import Enum
  from typing import Callable, List, TypeVar
  from neptune.common.exceptions import InternalClientError
  from neptune.exceptions import MetadataInconsistency
  from neptune.internal.operation import AddStrings, AssignArtifact, AssignBool, AssignDatetime, AssignFloat, AssignInt, AssignString, ClearFloatLog, ClearImageLog, ClearStringLog, ClearStringSet, ConfigFloatSeries, CopyAttribute, DeleteAttribute, DeleteFiles, LogFloats, LogImages, LogStrings, Operation, RemoveStrings, TrackFilesToArtifact, UploadFile, UploadFileContent, UploadFileSet
  from neptune.internal.operation_visitor import OperationVisitor
  from neptune.internal.utils.paths import path_to_str
label_desc: Use image node_id 27 for calling the _OperationsAccumulator obj's underlying member method code with example usage: obj.visit_delete_attribute(op) without return types