def METHOD_NAME(self, node, options=None):
    ''' Insert an OMPTargetDirective before the provided node or list
    of nodes.
    :param node: the PSyIR node or nodes to enclose in the OpenMP \
                  target region.
    :type node: List[:py:class:`psyclone.psyir.nodes.Node`]
    :param options: a dictionary with options for transformations.
    :type options: Optional[Dict[str,Any]]
    '''
    # Check whether we've been passed a list of nodes or just a
    # single node. If the latter then we create ourselves a
    # list containing just that node.
    node_list = self.get_node_list(node)
    self.validate(node_list, options)
    # Create a directive containing the nodes in node_list and insert it.
    parent = node_list[0].parent
    start_index = node_list[0].position
    directive = OMPTargetDirective(
        parent=parent, children=[node.detach() for node in node_list])
    parent.children.insert(start_index, directive)