There is no persistence in Chef Solo (it's one of the major drawbacks). You should do something like this:
node.save unless Chef::Config[:solo]
You can still call node.set
safely, but that data is only persisted in the run.
You may also want to look into something like Chef Zero or Knife Solo.