Rollback on schema validation errors rather than committing

Was almost trivial, but rolling back transactions breaks if you create tables after creating link columns so I had to pull the creation of the primary key table to before the columns are updated.

@alazier