I'm no expert but @timestamp is an internal field, so your field is conflicting with it.
I would think you need to name the column timestamp as you've done. Then parse the date through the date filter after the csv filter.
date {
match => [ "timestamp" , "YYYY-MM-ddHH:mm:ss,SSS" ]
target => "@timestamp"
}
I haven't tested this, might have to go lookup the match pattern syntax. Although this should put you on the right track 
Thereafter remove the timestamp field.
mutate {
remove_field => [ "timestamp" ]
}
Hope this helps 