Implements PUT