title: User object .save() does not save after upgrading django 2.1 => 2.2
body: <p>I am experiencing a very strange bug where I can create and save a <code>User</code> from the django shell, but when I exit and reopen the shell, the <code>User</code> disappears.</p>
  
  <p>This is in a prod-like environment with a proper backing DB. The issue goes away if I downgrade Django 2.2.8 -> 2.1.7</p>
  
  <pre><code>&gt;&gt;&gt; u = User(id=123131323122, first_name='hi', last_name='sup', email='test@mysupertest.com')
  &gt;&gt;&gt; u.set_password('foobar')
  &gt;&gt;&gt; u.save()
  &gt;&gt;&gt; User.objects.count()
  1059790
  &gt;&gt;&gt; u.refresh_from_db()
  &gt;&gt;&gt; u
  &lt;User: test@mysupertest.com&gt;
  &gt;&gt;&gt; cursor.execute("select * From my_users_table_name where id=123131323122")
  1
  now exiting InteractiveConsole...
  myuser$ python manage.py shell
  Python 3.6.9 (default, Nov 23 2019, 07:02:27)
  [GCC 6.3.0 20170516] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  (InteractiveConsole)
  &gt;&gt;&gt; from mypackage.models import User
  &gt;&gt;&gt; User.objects.count()
  1059789
  &gt;&gt;&gt; User.objects.get(email='test@mysupertest.com')
  Traceback (most recent call last):
    File "&lt;console&gt;", line 1, in &lt;module&gt;
    File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
      return getattr(self.get_queryset(), name)(*args, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 408, in get
      self.model._meta.object_name
  mypackage.models.User.DoesNotExist: User matching query does not exist.
  &gt;&gt;&gt; from django.db import connection
  &gt;&gt;&gt; cursor = connection.cursor(
  &gt;&gt;&gt; cursor.execute("select * From my_users_table_name where id=123131323122")
  0
  </code></pre>
  
  <p>My <code>User</code> inherits from django's <code>AbstractUser</code> and does not override <code>save</code> or any other methods.</p>
  
  <p>Something is definitely wonky with the 2.2 change on transaction autocommits. If I wrap the save in a <code>with transaction.atomic()</code> block, then it commits properly. This is not a acceptable workaround because I'm not going to wrap every <code>User.save()</code> call in my codebase. I have the default <code>AUTOCOMMIT=True</code> in <code>DATABASES</code>.</p>