Updating Parse Object after retrieving first

I am trying to update an existing record. I successfully retrieve the row which i want to update but I don’t know why I can not set new value and update them.

I truncate my object table to have only 1 record to make sure it is the only record i retrieve and should get updated

What I am doing wrong in my code below ?

var query2 = ParseObject.GetQuery("GameScore").WhereEqualTo("playerName", PlayerName );
query2.FirstAsync().ContinueWith (t => {

    ParseObject obj = t.Result;

    Debug.Log (obj.ObjectId); // This line does log the correct objectId which I wan to update

    Debug.Log (obj["score"].ToString()); //This line does log the correct old score

    obj["score"] = GameScore;    //I checked GameScore is correctly assigned a value
    obj.SaveAsync();
 });

This is my function for updating the Top score of the players Leaderboard

public void UpdateScores(int score){

	// Updating Leaderboard score by UserID
	var query = ParseObject.GetQuery("Leaderboard")
		.WhereEqualTo("playerId", userID);
	query.FindAsync().ContinueWith(t =>
	                               {
		var tokens = t.Result;
		IEnumerator<ParseObject> enumerator = tokens.GetEnumerator();
		enumerator.MoveNext();
		var token = enumerator.Current;
		token["score"] = score;
		return token.SaveAsync();
	}).Unwrap().ContinueWith(t =>
	                         {
		// Everything is done!
		//Debug.Log("Token has been updated!");
	});
}

This should help you to begin with