code: def multicol_outliers(data, multicol_stats):
      scols = {}
      for colname, stats in multicol_stats.items():
          scols["__{}_outlier".format(colname)] = ~F.col(
              "`%s`" % colname
          ).between(stats["lfence"], stats["ufence"])
      return data._internal.resolved_copy.spark_frame.withColumns(scols)
  
imports: import importlib
  import pandas
  import numpy
  from pandas.core.base import PandasObject
  from pandas.core.dtypes.inference import is_integer
  from pyspark.ml.feature import Bucketizer
  from pyspark.mllib.stat import KernelDensity
  from pyspark.sql import functions
  from pyspark.pandas.missing import unsupported_function
  from pyspark.pandas.config import get_option
  from pyspark.pandas.utils import name_like_string
label_desc: Use image node_id 3 for calling the BoxPlotBase obj's underlying member method code with example usage: obj.multicol_outliers(data, multicol_stats) and returns: data