def import_data(self, dataset, dry_run=False, raise_errors=False,<EOL>use_transactions=None, collect_failed_rows=False, **kwargs):
if use_transactions is None:<EOL><INDENT>use_transactions = self.get_use_transactions()<EOL><DEDENT>connection = connections[DEFAULT_DB_ALIAS]<EOL>supports_transactions = getattr(connection.features, "<STR_LIT>", False)<EOL>if use_transactions and not supports_transactions:<EOL><INDENT>raise ImproperlyConfigured<EOL><DEDENT>using_transactions = (use_transactions or dry_run) and supports_transactions<EOL>with atomic_if_using_transaction(using_transactions):<EOL><INDENT>return self.import_data_inner(dataset, dry_run, raise_errors, using_transactions, collect_failed_rows, **kwargs)<EOL><DEDENT>
Imports data from ``tablib.Dataset``. Refer to :doc:`import_workflow`
for a more complete description of the whole import process.

:param dataset: A ``tablib.Dataset``

:param raise_errors: Whether errors should be printed to the end user
    or raised regularly.

:param use_transactions: If ``True`` the import process will be processed
    inside a transaction.

:param collect_failed_rows: If ``True`` the import process will collect
    failed rows.

:param dry_run: If ``dry_run`` is set, or an error occurs, if a transaction
    is being used, it will be rolled back.