Do some microcontrollers require data to be loaded in temporary memory before programming?
You need to read the entire programming specification (section 23) in the datasheet. In particular, I call your attention to


  23.4.3 Program Enable Function:
  
  
  Enables the programming interface to receive commands.
  Program Enable must be the first command issued in any programming session.
  In parallel programming a session is active while RST remains at VPP.
  In serial programming a session is active while RST remains at VCC.