This works essentially like insert, although it is more error-prone?!
There might be a bug in this function.
Lacks implementation (is it necessary?)