When I use this to update a field:
fields = ['Index', 'wind']
arcpy.AddMessage(fc)
with arcpy.da.UpdateCursor(fc,fields) as cursor:
for row in cursor:
arcpy.AddMessage(row)
if (row[1] >= 0 and row[1] <= 20):
row[0] = 5
elif (row[1] > 20 and row[1] <= 70):
row[0] = 4
elif (row[1] > 70 and row[1] <= 110):
row[0] = 3
elif (row[1] > 110 and row[1] <=160):
row[0] = 2
elif(row[1] > 160 and row[1] <=200):
row[0] = 1
elif(row[1] > 200 and row[1] <=250):
row[0] = 2
elif(row[1] > 250 and row[1] <=290):
row[0] = 3
elif(row[1] > 290 and row[1] <=340):
row[0] = 4
elif(row[1] > 340):
row[0] = 5
cursor.updateRow(row)
arcpy.AddMessage(row)
and check the messages I get
[None, 101]
[3, 101]
[None, 56]
[4, 56]
[None, 24]
[4, 24]
[None, 47]
[4, 47]
showing that Index has nothing and wind has data which is right
then the next add message has data in both.
However the actual table never gets updated but the tool completes without error.