Support for dynamically generated forms (needed for cinder multi backend)

Its intentional to skip the 

```ruby
         if (!data[part]) {
            data[part] = {};
          }
```

in line 107-109, which causes the bug. Furthermore it makes the code work the same way like remove and write already does, so purely from consistency point of view the change makes already sense. 

(yeah, it could also be refactored into a common method but I did not have time to do that)