code: private static MultiLineString splitMultiLineStringWithPoint(MultiLineString multiLineString, Point pointToSplit, double tolerance) {
          ArrayList<LineString> linestrings = new ArrayList<LineString>();
          boolean notChanged = true;
          int nb = multiLineString.getNumGeometries();
          for (int i = 0; i < nb; i++) {
              LineString subGeom = (LineString) multiLineString.getGeometryN(i);
              LineString[] result = splitLineStringWithPoint(subGeom, pointToSplit, tolerance);
              if (result != null) {
                  Collections.addAll(linestrings, result);
                  notChanged = false;
              } else {
                  linestrings.add(subGeom);
              }
          }
          if (!notChanged) {
              return FACTORY.createMultiLineString(linestrings.toArray(new LineString[0]));
          }
          return null;
      }
docs: Splits a MultilineString using a point.
  
  @param multiLineString
  @param pointToSplit
  @param tolerance
  @return