code: def _set_composed_multiscale_transform(self, attr, transform):
      current_transform = getattr(attr.dataset, "transform", None)
      if current_transform is None:
          setattr(attr.dataset, "transform", transform)
      else:
          if (
              isinstance(current_transform, Compose)
              and transform not in current_transform.transforms
          ):  # The transform contains several transformations
              current_transform.transforms += [transform]
          elif current_transform != transform:
              setattr(
                  attr.dataset,
                  "transform",
                  Compose([current_transform, transform]),
              )
  
imports: import os
  from abc import ABC, abstractmethod
  import logging
  import functools
  from functools import partial
  import numpy
  import torch
  import torch_geometric
  from torch_geometric.transforms import Compose, FixedPoints
  import copy
  from torch_points3d.models import model_interface
  from torch_points3d.core.data_transform import instantiate_transforms, MultiScaleTransform
  from torch_points3d.core.data_transform import instantiate_filters
  from torch_points3d.datasets.batch import SimpleBatch
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.config import ConvolutionFormatFactory
  from torch_points3d.utils.colors import COLORS, colored_print
label_desc: Use image node_id 38 for calling the BaseDataset obj's underlying member method code with example usage: obj._set_composed_multiscale_transform(attr, transform) without return types