Alter table Statement Failed -Msg 207, Level 16, State 1
Your prolem occurs because of the different steps involved in query execution.  First comes parsing, then binding and finally execution.  In parsing the submitted text is verified as valid SQL and converted to an internal representation.  Binding resolves the names from the submitted SQL to objects inside SQL Server's catalogue.  Unfortuately TableName.ColumnName does not exist when binding is attempted so that part fails.

There are two things you can do*.  First, split the query into two batches, one to create the column, one to update it.  Only run the second if the first succeeds.  Second, put the update in dynamic SQL and run it via exec sp_executesql.  This effectively creates a second batch internally.

*That I can think of right now.  I'm sure wiser heads could suggest others.