Not sure if I understand what you want or how you've done things. However, if you actually change player_stats.team_id from one team id to another, then all of the stats for that player will be moved from the team he played in last season to the team he plays in this season... Thus, my answer would be to not change team ids anywhere, except in the player table if that is where you store the id of the team someone is currently playing for. If you have a table dedicated to keeping track of who plays where along with start and end dates, you'd simply set an end date to the current time period and add a new entry for the same player in another team.
player_team
player_id team_id start_date end_date
Your stats table should look something like
player_id team_id stat_stuff
And the same goes for awards
player_id team_id award
There may obviously be other things in those tables such as the date when a reward was received. Either way, with this approach a player can receive an award when playing for team 1 during one year and receieve the same, or other, award when playing for team 2 another year.
Having a date in there is a good idea so you may distinguish between two awards of the same kind the same player got with the same team two different seasons.