code: func (gc *GarbageCollector) patch(item *node, smp []byte, jmp jsonMergePatchFunc) (*unstructured.Unstructured, error) {
  	smpResult, err := gc.patchObject(item.identity, smp, types.StrategicMergePatchType)
  	if err == nil {
  		return smpResult, nil
  	}
  	if !errors.IsUnsupportedMediaType(err) {
  		return nil, err
  	}
  	// StrategicMergePatch is not supported, use JSON merge patch instead
  	patch, err := jmp(item)
  	if err != nil {
  		return nil, err
  	}
  	return gc.patchObject(item.identity, patch, types.MergePatchType)
  }
docs: // patch tries strategic merge patch on item first, and if SMP is not supported, it fallbacks to JSON merge
  // patch.