In fact it's already there in the default wire model (wire_v2; under Wires models folder).
Without going into detail of the modeling (you can have a look inside the model), the way it works is as follows:
1. There is a global setting that enables thermal mode of the wire (default = true)
2. If this is enabled, then the wire evaluates the temperature of the wire based on the current passing through it and the ambient temperature it is operating in the function wireTemperature()
3. The current temperature of the wire is used to reevaluate the resistance in the function resistanceAtTemperature()
2 and 3 are interlinked together so that one would trigger change in the other. A looping is performed until the wire temperature is stabilized and then final values of temperature and resistance are reached and reported through simulation. This looping is performed inside the function updateSimulation()
Hope this explains the mechanism.