code: def insert_value(self, val, label, w):
      if val == self.cut_point:
          self.class_count_left[label] += w
      elif val < self.cut_point:
          self.class_count_left[label] += w
          if self._left is None:
              self._left = ExhaustiveNode(val, label, w)
          else:
              self._left.insert_value(val, label, w)
      else:
          self.class_count_right[label] += w
          if self._right is None:
              self._right = ExhaustiveNode(val, label, w)
          else:
              self._right.insert_value(val, label, w)
  
file_path: river/river/tree/splitter/exhaustive_splitter.py
imports: from __future__ import annotations
  from collections import Counter, defaultdict
  from ..utils import BranchFactory
  from .base import Splitter
label_desc: Use image node_id 2 for calling the ExhaustiveNode obj's underlying member method code with example usage: obj.insert_value(val, label, w) without return types