code: def visit_FunctionDef(self, node: ast.FunctionDef):
      # Remove private functions
      if (
          not self.keep_private
          and node.name.startswith("_")
          and not node.name.endswith("__")
      ):
          self.generic_visit(node)
          return None
      # Replace function body with Pass
      node.body = [
          ast.Raise(
              exc=ast.Call(
                  func=ast.Name(
                      id=_not_imlpemented_exc_name, ctx=ast.Load()
                  ),
                  args=[
                      ast.Constant(
                          value=f"{_target_backend}.{node.name} Not Implemented",
                          kind=None,
                      )
                  ],
                  keywords=[],
              ),
              cause=None,
          )
      ]
      # Update decorators not to include ones in the blacklist
      # Add Not Implemented decorator
      new_list = []
      for entry in node.decorator_list:
          if isinstance(entry, ast.Call):
              name_of_decorator = entry.func.id
          else:
              name_of_decorator = entry.id
          if name_of_decorator in _decorator_black_list:
              continue
          new_list.append(entry)
      node.decorator_list = new_list
      self.generic_visit(node)
      return node
  
imports: import astunparse
  import ast
  import json
  import sys
  import subprocess
  import os
  import logging
  from shared import BackendNativeObject
label_desc: Use image node_id 7 for calling the SourceTransformer obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: node, None