use transactions for drop and recreate to try to avoid concurrent tuple updates