std::map has an insert method that takes a "hint" iterator that will reduce the insertion time from log(n) to constant time if the hint is correct. Its pretty obvious how this would work, since the container could just make sure the newly added item has a key that is less than the hint and has a key that is greater than the item before the hint. Otherwise the hint was wrong and it performs a normal insert.
std::unordered_map also has a similar insert with hint function. What, if anything, does the hint do? Its not obvious to me how another a "hint" iterator could be used to speed up a hash map insertion.
If it is used, what is an appropriate "hint". In std::map, the hint is typically found by calling lower_bound on the map.
std::map, since you'd have to know exactly where the hash for your value was to be inserted to do anything useful - which means you need to factor in the load, the buckets, etc, basically reproducing whatunordered_mapdoes internally. Also, as you noted, insert is amortized O(1) anyways.