wrap syncable.disconnect in an transaction, .syncable.delete changed first into each

db.syncable.disconnect wrapped in transaction.
db.syncable.delete changed first in each in the rare case that url is not unique!

The last case should not happen, i will make a ticket for this one. As this is not the fix for the source off the problem.