def METHOD_NAME(self, timeframe, new_results):
    """Append a single result.
    Parameters
    ----------
    timeframe : nilmtk.TimeFrame
    new_results : dict
    """
    if not isinstance(timeframe, TimeFrame):
        raise TypeError("`timeframe` must be of type 'nilmtk.TimeFrame',"
                        " not '{}' type.".format(type(timeframe)))
    if not isinstance(new_results, dict):
        raise TypeError("`new_results` must of a dict, not '{}' type."
                        .format(type(new_results)))
    # check that there is no overlap
    for index, series in self._data.iterrows():
        tf = TimeFrame(index, series['end'])
        tf.check_for_overlap(timeframe)
    row = pd.DataFrame(index=[timeframe.start],
                       columns=['end'] + list(new_results))
    row['end'] = timeframe.end
    for key, val in new_results.items():
        row[key] = val
    self._data = self._data.METHOD_NAME(row, verify_integrity=True, sort=False)
    self._data.sort_index(inplace=True)