std::upper_bound() was not the correct tool to find the existing point, it should have been std::lower_bound(). For code consistency, this change doesn't use either but like ::remove_tempo() and similar methods, just iterates over the whole list