method append_data = fun ?parent data ->
    let iter = self#append ?parent () in
      self#set_data data ~row:iter;
      iter