code: def get_or_new_child(self, term, value=False, **kwargs):
          
  
          pt, rt = self.split_term(term)
  
          term = self.record_term + '.' + rt
  
          c = self.find_first(rt)
  
          if c is None:
              tc = self.doc.get_term_class(term.lower())
              c = tc(term, value, parent=self, doc=self.doc, section=self.section).new_children(**kwargs)
              assert not c.term_is("Datafile.Section"), (self, c)
              self.children.append(c)
  
          else:
              if value is not False:
                  c.value = value
  
              for k, v in kwargs.items():
                  c.get_or_new_child(k, v)
  
          # Check that the term was inserted and can be found.
          assert self.find_first(rt)
          assert self.find_first(rt) == c
  
          return c
docs: Find a term, using find_first, and set it's value and properties, if it exists. If
          it does not, create a new term and children.