Update value by column/field in INSERT SQL
For an update, you are changing an existing column value in a number of existing rows, 'select'ed based on the "where" clause you specify: 

update product_price 
set price = price + 10 
where product_id = 4442 ; 


The query locates any rows with product_id 4442 and then, for each one, extracts the current value of price, adds 10 to it, and stores that result back into each record. 

For an insert, you are creating a completely new record which, by definition, cannot contain any values (until after it's been created): 

insert into product_price  
values ( 2442, 1, price * 1.1 )


So; what value does price represent in this query? 

Before this statement executes, there is no row with product_id 2442.
Therefore, there is no price value (in that non-existent row) for the query to retrieve and modify.