bpo-1635741: _sqlite3 uses PyModule_AddObjectRef() (GH-23148)

diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c
index 3332440..9fdf514 100644
--- a/Modules/_sqlite/module.c
+++ b/Modules/_sqlite/module.c
@@ -263,17 +263,17 @@ pysqlite_adapt_impl(PyObject *module, PyObject *obj, PyObject *proto,
     return pysqlite_microprotocols_adapt(obj, proto, alt);
 }
 
-static void converters_init(PyObject* module)
+static int converters_init(PyObject* module)
 {
     _pysqlite_converters = PyDict_New();
     if (!_pysqlite_converters) {
-        return;
+        return -1;
     }
 
-    if (PyModule_AddObject(module, "converters", _pysqlite_converters) < 0) {
-        Py_DECREF(_pysqlite_converters);
-    }
-    return;
+    int res = PyModule_AddObjectRef(module, "converters", _pysqlite_converters);
+    Py_DECREF(_pysqlite_converters);
+
+    return res;
 }
 
 static PyMethodDef module_methods[] = {
@@ -361,8 +361,9 @@ do {                                                            \
     if (!exc) {                                                 \
         goto error;                                             \
     }                                                           \
-    if (PyModule_AddObject(module, name, exc) < 0) {            \
-        Py_DECREF(exc);                                         \
+    int res = PyModule_AddObjectRef(module, name, exc);         \
+    Py_DECREF(exc);                                             \
+    if (res < 0) {                                              \
         goto error;                                             \
     }                                                           \
 } while (0)
@@ -416,9 +417,7 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
        non-ASCII data and bytestrings to be returned for ASCII data.
        Now OptimizedUnicode is an alias for str, so it has no
        effect. */
-    Py_INCREF((PyObject*)&PyUnicode_Type);
-    if (PyModule_AddObject(module, "OptimizedUnicode", (PyObject*)&PyUnicode_Type) < 0) {
-        Py_DECREF((PyObject*)&PyUnicode_Type);
+    if (PyModule_AddObjectRef(module, "OptimizedUnicode", (PyObject*)&PyUnicode_Type) < 0) {
         goto error;
     }
 
@@ -441,7 +440,9 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
     }
 
     /* initialize the default converters */
-    converters_init(module);
+    if (converters_init(module) < 0) {
+        goto error;
+    }
 
 error:
     if (PyErr_Occurred())