You have a number of possibilities. All of the following solutions allow for using _ in formulas with the usual meaning. My preference would go to the third one.
Making _ active
\documentclass{article}
\usepackage{csvtools}
\newcommand{\DATARow}[4]{#1 & #2 & #3 & #4\\[.5ex]}
\setcsvseparator{;}
%%% Make _ active
\catcode`\_=\active
\protected\def_{\ifmmode\sb\else\_\fi}
%%%
\begin{document}
\CSVtotabular{stackoverflow.csv}%
{|c|c|c|c|}%
{\DATARow{ID}{REGISTER}{TYPE}{FORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}
\end{document}
Making _ a normal character and math active globally
Note that the T1 encoding is necessary for this solution
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csvtools}
\newcommand{\DATARow}[4]{#1 & #2 & #3 & #4\\[.5ex]}
\setcsvseparator{;}
%%% Make _ a normal character and math active
\catcode`\_=12
\AtBeginDocument{\mathcode`\_=\string"8000 }
\begingroup\lccode`\~=`\_
\lowercase\endgroup{\let~\sb}
%%%
\begin{document}
\CSVtotabular{stackoverflow.csv}%
{|c|c|c|c|}%
{\DATARow{ID}{REGISTER}{TYPE}{FORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}
\end{document}
Make _ a character and math active only locally
Again the T1 encoding is necessary.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csvtools}
\newcommand{\DATARow}[4]{#1 & #2 & #3 & #4\\[.5ex]}
\setcsvseparator{;}
%%% Make _ a normal character and math active
\newcommand{\specialunderscore}{%
\catcode`\_=12
\mathcode`\_=\string"8000
\begingroup\lccode`\~=`\_
\lowercase\endgroup{\let~\sb}}
%%% Define a wrapper around \CSVtotabular
\newcommand{\xCSVtotabular}[6][]{%
\begingroup#1\CSVtotabular{#2}{#3}{#4}{#5}{#6}\endgroup}
%%%
\begin{document}
\xCSVtotabular[\specialunderscore]{stackoverflow.csv}%
{|c|c|c|c|}%
{\DATARow{ID}{REGISTER}{TYPE}{FORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}%
{\DATARow{\insertID}{\insertREGISTER}{\insertTYPE}{\insertFORMULA}}
\end{document}
The \xCSVtotabular accepts an optional argument that should consist of assignments such as \specialunderscore or similar ones that locally change some meaning of tokens.